﻿using System;

/// <summary>
/// Clase que implementa el patrón Observer.
/// </summary>
public class SampleObserver : PatternObserver.IObserver
{

    #region CONSTRUCTORS

    /// <summary>
    /// Constructor de la clase.
    /// </summary>
    /// <param name="text">Parámetro utilizado para demostrar la implementación 
    /// correcta del patrón Observer.</param>
    public SampleObserver(string text)
    {
        // Indicamos el valor de la propiedad Text.
        this.Text = text;
    } // SampleObserver Constructor

    #endregion


    #region PROPERTIES

    /// <summary>
    /// Propiedad que es utilizada para saber qué instancia del subscriptor es lanzada
    /// en la notificación.
    /// </summary>
    private string Text { get; set; }

    #endregion


    #region IObserver Members

    /// <summary>
    /// Método utilizado para ser llamado desde el notificador ante un determinado 
    /// evento que ha sucedido en un momento dado y que requiere la atención por 
    /// todos y cada uno de los observadores o subscriptores.
    /// </summary>
    /// <param name="sender">Indicamos la interfaz a quién se le envía la notificación.</param>
    public void UpdateState(PatternObserver.ISubject sender)
    {
        System.Windows.Forms.MessageBox.Show(this.Text);
    } // UpdateState

    #endregion

} // SampleObserver
